home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / program / bgui12.lha / docs / windowclass.doc < prev   
Text File  |  1995-09-09  |  28KB  |  927 lines

  1.  
  2.            File: windowclass.doc
  3.     Description: Windowclass documentation.
  4.       Copyright: (C) Copyright 1994-1995 Jaba Development.
  5.              (C) Copyright 1994-1995 Jan van den Baard.
  6.              All Rights Reserved.
  7.  
  8. ------------------------------------------------------------------------------
  9.  
  10. TABLE OF CONTENTS
  11.  
  12. windowclass/--background--
  13. windowclass/Methods
  14. windowclass/Attributes
  15.  
  16. windowclass/--background--                windowclass/--background--
  17.  
  18.     NAME
  19.     Class:        windowclass
  20.     Superclass:    ROOTCLASS
  21.     Include File:    <libraries/bgui.h>
  22.  
  23.     FUNCTION
  24.     To  provide  an  easy  to use BGUI interface to intuition windows. The
  25.     window    class  provides just about anything you need to create windows
  26.     with a fully font sensitive and size adjustable GUI.
  27.  
  28. windowclass/Methods                       windowclass/Methods
  29.  
  30.     NEW METHODS
  31.     WM_OPEN -- This method must be used to open the window.  When a window
  32.         object is created it does not open right away.
  33.  
  34.         Returns a pointer to the opened window uppon success  and NULL
  35.         uppon failure.
  36.  
  37.     WM_CLOSE -- This method must be used to close the window again.  It is
  38.         safe to call this method even when the window is not open.
  39.  
  40.         Returns TRUE uppon success and FALSE uppon failure.
  41.  
  42.     WM_SLEEP -- With this method you can put your window to sleep  when it
  43.         is  open.   This  is  done  by    setting  up a  small invisible
  44.         requester and a busy pointer.
  45.  
  46.         Returns TRUE uppon success and FALSE uppon failure.
  47.  
  48.     WM_WAKEUP -- This methos must be  used to  wake  up the  window again.
  49.         Please note that you must wake up the window as many  times as
  50.         you have put it to sleep before you can actually use it again.
  51.         Both the WM_SLEEP and WM_WAKEUP methods can be nested.
  52.  
  53.         Returns TRUE uppon success and FALSE uppon failure.
  54.  
  55.     WM_HANDLEIDCMP -- This method must be  used  to call  the  windowclass
  56.         event handler. The event handler will  act  uppon the messages
  57.         present at the window it's message  port  and  return  you one
  58.         of the following return codes:
  59.  
  60.         WMHI_CLOSEWINDOW -- The window it's close gadget was selected.
  61.         WMHI_NOMORE -- No more messages waiting.
  62.         WMHI_INACTIVE -- The window was de-activated.
  63.         WMHI_ACTIVE -- The window was activated.
  64.         WMHI_IGNORE -- Ignore this result.
  65.  
  66.         Any return code which differs from the ones  above is  the  ID
  67.         of a selected object (gadget or menu).
  68.  
  69.         Please look at the demo programs for more information.
  70.  
  71.     WM_GADGETKEY -- With this method you  can  assign a  key to  trigger a
  72.         gadget object in the window.  This method  uses the  following
  73.         custom message structure:
  74.  
  75.         struct wmGadgetKey {
  76.             ULONG          MethodID;  /* WM_GADGETKEY */
  77.             struct Requester *wmgk_Requester;
  78.             Object         *wmgk_Object;
  79.             STRPTR          wmgk_Key;
  80.         };
  81.  
  82.         wmgk_Requester -- This version of the library does not support
  83.             BGUI gadget objects in requesters  so this  field must
  84.             be set to NULL.
  85.  
  86.         wmgk_Object -- This must be  a    pointer to  the  object  which
  87.             must be controlled by the key.
  88.  
  89.         wmgk_Key -- This must point to a  string  in   which  a single
  90.             character is located. The character is    the  key which
  91.             controls the object when it is pressed.
  92.  
  93.         Returns TRUE uppon success and FALSE uppon failure.
  94.  
  95.     WM_KEYACTIVE, WM_KEYINPUT, WM_KEY_INACTIVE -- These three  methods are
  96.         sent to the gadget object during a key-session.  Please  refer
  97.         to the "methods.doc" file for more information.
  98.  
  99.     WM_DISABLEMENU, WM_CHECKITEM -- These  two  methods  must  be  used to
  100.         disable or enable a menu or a menu item or to set or clear the
  101.         check mark of a CHECKIT item.    These  methods    both  use  the
  102.         following custom message structure:
  103.  
  104.         struct wmMenuAction {
  105.             ULONG          MethodID; /* Any of the above. */
  106.             ULONG          wmma_MenuID;
  107.             ULONG          wmma_Set;
  108.         };
  109.  
  110.         wmma_MenuID -- This must be the ID of the  menu/item  on which
  111.             the operation is done. The ID is  the value  which you
  112.             set in the nm_UserData field of the NewMenu structure.
  113.  
  114.         wmma_Set -- This is a boolean which  disables/checks  the menu
  115.             when set to  TRUE  or  enables/unchecks the  menu when
  116.             set to FALSE.
  117.  
  118.         Returns TRUE uppon success and FALSE uppon failure.
  119.  
  120.     WM_MENUDISABLED, WM_ITEMCHECKED -- These two methods  must  be used to
  121.         query about the disabled/checked state of a menu. Both methods
  122.         use the following custom message structure:
  123.  
  124.         struct wmMenuQuery {
  125.             ULONG          MethodID; /* Any of the above. */
  126.             ULONG          wmmq_MenuID;
  127.         };
  128.  
  129.         wmmq_MenuID -- This must be the ID of the  menu/item  on which
  130.             the operation is done. The ID is  the value  which you
  131.             set in the nm_UserData field of the NewMenu structure.
  132.  
  133.         Returns TRUE if the menu is disabled/checked and FALSE if not.
  134.         A return code of ~0 means that the menu is unknown or no menus
  135.         are available.
  136.  
  137.     WM_TABCYCLE_ORDER -- With this method you can  determine the  order of
  138.         tab-cycling.  This method uses    the  following    custom message
  139.         structure:
  140.  
  141.         struct wmTabCycleOrder {
  142.             ULONG          MethodID; /* WM_TABCYCLE_ORDER */
  143.             Object         *wtco_Object1;
  144.             /* Object     *wtco_Object2; */
  145.             /* ... */
  146.             /* NULL */
  147.         };
  148.  
  149.         wtco_Object1 -- The first of a the objects which  will be  set
  150.             in the tab-cycle chain.   Please  note    that you  must
  151.             terminate the method with a NULL pointer.
  152.  
  153.         Returns TRUE uppon success and FALSE uppon failure.
  154.  
  155.     WM_GETAPPMSG -- This method must be used  to get the AppWindow message
  156.         when one is available.    Please note that _you_ are  resposible
  157.         for replying the message.
  158.  
  159.         Returns a pointer to the AppMessage or NULL when  there was no
  160.         message.
  161.  
  162.     WM_ADDUPDATE -- This method must be used  to  perform  simple map-list
  163.         notification with  externalclass  objects.  The  externalclass
  164.         objects are not able to perform  notification  like  the other
  165.         gadget classes. This method uses the  following custom message
  166.         structure:
  167.  
  168.         struct wmAddUpdate {
  169.             ULONG          MethodID; /* WM_ADDUPDATE */
  170.             ULONG          wmau_SourceID;
  171.             Object         *wmau_Target;
  172.             struct TagItem     *wmau_MapList;
  173.         };
  174.  
  175.         wmau_SourceID -- This must be the ID of the object that send's
  176.             the notification message.
  177.  
  178.         wmau_Target -- This must be a  pointer    to  the  object  which
  179.             must be updated by the notiication.
  180.  
  181.         wmau_MapList -- This can pointe to  an    array  of  tags  which
  182.             contain the attributes to map.    This may also  be NULL
  183.             in which case no mapping is done.
  184.  
  185.         Return TRUE uppon success and FALSE uppon failure.
  186.  
  187.     WM_REPORT_ID ** V38 ** -- This method  will  allow  an    IDCMP-hook  or
  188.         Verify-hook to report ID's  to  the  application program.   It
  189.         will  stack  the  ID(s)  to  report  and  pass    them  to   the
  190.         application the next time the WM_HANDLEIDCMP method is called.
  191.         This  method  uses the following custom message structure:
  192.  
  193.         struct wmReportID {
  194.             ULONG        MethodID;    /* WM_REPORT_ID     */
  195.             ULONG        wmri_ID;
  196.             ULONG        wmri_Flags;
  197.         };
  198.  
  199.         wmri_ID -- This is the ID that is put on the stack.  Next time
  200.             the application  call's  WM_HANDLEIDCMP on  the object
  201.             the ID's on the stack are returned.
  202.  
  203.         wmri_Flags -- This may contain any of the following flags:
  204.  
  205.             WMRIF_DOUBLE_CLICK -- When this flag is set  the ID to
  206.                 report     is  put  on  the  stack  twice  which
  207.                 effectivly simulates a double-click.
  208.  
  209.         Returns TRUE uppon success and FALSE uppon failure.
  210.  
  211.     WM_GET_SIGNAL_WINDOW ** V39 ** -- This method is  only    useful    if you
  212.         one message port for several window.    When  your  program is
  213.         signalled that a message has  arrived  at the  shared  message
  214.         port you must use this method to determine  from  which window
  215.         the message originated so that you may call uppon the  correct
  216.         event handler.
  217.  
  218.         It  does  not  matter  from  which window object that uses the
  219.         shared    message  port you get this information just as long as
  220.         the object uses the shared message port.
  221.  
  222.         Example:
  223.  
  224.         struct MsgPort *mp;
  225.         Object           *WO_Win1, *WO_Win2, *WO_Win3;
  226.         struct Window  *Win1, *Win2, *Win3, *SigWin;
  227.  
  228.         do {
  229.             Wait( 1 << mp->mp_SigBit );
  230.  
  231.             while ( SigWin = DoMethod( WO_Win1,
  232.                         WM_GET_SIGNAL_WINDOW )) {
  233.  
  234.                 if ( SigWin == Win1 ) {
  235.                     /* Handle events WO_Win1 */
  236.                     ...
  237.                 }
  238.  
  239.                 if ( SigWin == Win2 ) {
  240.                     /* Handle events WO_Win2 */
  241.                     ...
  242.                 }
  243.  
  244.                 if ( SigWin == Win3 ) {
  245.                     /* Handle events WO_Win3 */
  246.                     ...
  247.                 }
  248.             }
  249.         } while ( ... );
  250.  
  251.         Please take a look at  the  "BGUIDemo"  demonstration  program
  252.         to see a working implementation.
  253.  
  254.         Returns  a  pointer  to  the  window  from  which  the    signal
  255.         originated or NULL if the window could not be found.
  256.  
  257.     CHANGED METHODS
  258.     OM_DISPOSE -- When  this  method is called all objects attached to the
  259.         window with the WINDOW_MasterGroup attribute are also disposed
  260.         of.
  261.  
  262. windowclass/Attributes                    windowclass/Attributes
  263.  
  264.     NAME
  265.     WINDOW_Position -- ( ULONG )
  266.  
  267.     FUNCTION
  268.     To determine the position at which the window is opened. These are the
  269.     possibilities:
  270.  
  271.     POS_CENTERSCREEN -- The window is centered in the visible part    of the
  272.         screen it is opened on.
  273.     POS_CENTERMOUSE -- The window is centered under  the mouse.  Depending
  274.         on the location of the mouse this might differ a little.
  275.     POS_TOPLEFT -- The window is opened  at  the  top-left    corner    in the
  276.         visible part of the screen it is opened on.
  277.  
  278.     Default is POS_CENTERSCREEN. Applicability is (I).
  279.  
  280.     SEE ALSO
  281.     WINDOW_PosRelBox
  282.  
  283.     NAME
  284.     WINDOW_ScaleWidth, WINDOW_ScaleHeight -- ( ULONG )
  285.  
  286.     FUNCTION
  287.     To open a window larger than it's minimum size. The data you pass with
  288.     these tags must be the percentage (0%..100%) of the  visible  size  of
  289.     the screen minus the minimum size of the window.  For example you have
  290.     a  window which is 100 pixels wide at it's minimum size  on  a  screen
  291.     which    is  1000   pixels   wide   (visible)   and   you  pass    25  as
  292.     WINDOW_ScaleWidth  the window is opened 325 pixels wide.
  293.  
  294.     (( 1000 - 100 ) / 100 ) * 25 = 225
  295.  
  296.     225 + 100 = 325
  297.  
  298.     Defaults are 0. Applicability is (I).
  299.  
  300.     NAME
  301.     WINDOW_LockWidth, WINDOW_LockHeight -- ( BOOL )
  302.  
  303.     FUNCTION
  304.     To disable sizing the width or height of a window.
  305.  
  306.     Defaults are FALSE. Applicability is (I).
  307.  
  308.     NAME
  309.     WINDOW_PosRelBox -- ( struct IBox * )
  310.  
  311.     FUNCTION
  312.     To open the window centered in the described box.  The    data  you pass
  313.     here must be a pointer to a struct IBox in which the location and size
  314.     of the box is described. This will allow you to easely center a window
  315.     uppon another window like this:
  316.  
  317.     struct Window        *parent;
  318.     struct IBox         position;
  319.     Object            *window_object;
  320.  
  321.     /*
  322.     **    Copy the parent location/size.
  323.     **/
  324.     position = *(( struct IBox * )&parent->LeftEdge );
  325.  
  326.     window_object = WindowObject,
  327.         WINDOW_PosRelBox,        &position,
  328.         ....
  329.     EndObject;
  330.  
  331.     SEE ALSO
  332.     WINDOW_Position
  333.  
  334.     NAME
  335.     WINDOW_DragBar,         WINDOW_SizeGadget,       WINDOW_CloseGadget,
  336.     WINDOW_DepthGadget -- ( BOOL )
  337.  
  338.     FUNCTION
  339.     To switch on or off the corresponding system gadgets.
  340.  
  341.     Default for all are TRUE. Applicability is (I).
  342.  
  343.     NAME
  344.     WINDOW_SizeBottom, WINDOW_SizeRight -- ( BOOL )
  345.  
  346.     FUNCTION
  347.     To determine the place of the sizing gadget.
  348.  
  349.     Default is TRUE for bottom and FALSE for right. Applicability is (I).
  350.  
  351.     NAME
  352.     WINDOW_Activate -- ( BOOL )
  353.  
  354.     FUNCTION
  355.     To activate the window right after it is opened.
  356.  
  357.     Default is TRUE. Applicability is (I).
  358.  
  359.     NAME
  360.     WINDOW_RMBTrap -- ( BOOL )
  361.  
  362.     FUNCTION
  363.     To set/clear the WFLG_RMBTRAP  flag.  When set this disables the right
  364.     from  activating  the  menu-strip.   It will also make the right mouse
  365.     button visible in intuition events.
  366.  
  367.     Default is FALSE. Applicability is (I).
  368.  
  369.     NAME
  370.     WINDOW_SmartRefresh -- ( BOOL )
  371.  
  372.     FUNCTION
  373.     To set/clear the WFLG_SMART_REFRESH flag.
  374.  
  375.     Default is FALSE. Applicability is (I).
  376.  
  377.     NAME
  378.     WINDOW_ReportMouse -- ( BOOL )
  379.  
  380.     FUNCTION
  381.     To set/clear the WFLG_REPORTMOUSE flags.
  382.  
  383.     Default is FALSE. Applicability is (I).
  384.  
  385.     NAME
  386.     WINDOW_IDCMP -- ( ULONG )
  387.  
  388.     FUNCTION
  389.     To set extra IDCMP flags which are not automatically set by the window
  390.     class  itself.    This  might  be  necessary  for  the  WINDOW_IDCMPHook
  391.     described below.   The following  flags are  automatically set    by the
  392.     window class:
  393.  
  394.     IDCMP_RAWKEY            - Key control of gadgets.
  395.     IDCMP_GADGETUP            - The obvious.
  396.     IDCMP_CHANGEWINDOW        - To track window changes.
  397.     IDCMP_INACTIVEWINDOW        - To report window inactivation.
  398.     IDCMP_ACTIVEWINDOW        - To report window activation.
  399.     IDCMP_IDCMPUPDATE        - For WM_ADDUPDATE notification,
  400.                       tab-cycling and continues slider and
  401.                       scroller reporting.
  402.     IDCMP_CLOSEWINDOW        - To report clicking the close gadget.
  403.     IDCMP_MENUPICK            - To report menu-selections.
  404.     IDCMP_SIZEVERIFY        - To handle user re-sizing.
  405.  
  406.     Please    note  that  IDCMP_VANILLAKEY  must  _not_  be set. The current
  407.     keyboard handling does not allow this.
  408.  
  409.     Default is 0. Applicability is (I).
  410.  
  411.     SEE ALSO
  412.     WINDOW_IDCMPHook, WINDOW_NoVerify
  413.  
  414.     NAME
  415.     WINDOW_SharedPort -- ( struct MsgPort * )
  416.  
  417.     FUNCTION
  418.     To use a shared message port for the window.  If you pass a pointer to
  419.     a valid message port here the window will use this  port for receiving
  420.     events.
  421.  
  422.     Default is NULL. Applicability is (I).
  423.  
  424.     NAME
  425.     WINDOW_Title, WINDOW_ScreenTitle -- ( STRPTR )
  426.  
  427.     FUNCTION
  428.     To set the window title and the title of  the screen  while the window
  429.     is active.
  430.  
  431.     Defaults are NULL. Applicability is (ISU).
  432.  
  433.     NAME
  434.     WINDOW_MenuStrip -- ( struct NewMenu * ) ( struct Menu * )
  435.  
  436.     FUNCTION
  437.     This attribute has two data types to be considered.  Uppon creation of
  438.     the  window  object  the  data    expected  is  a pointer to an array of
  439.     NewMenu  structures  as  defined  in  <libraries/gadtools.h>. When you
  440.     obtain    this  attribute  with  OM_GET  you  will  get a pointer to the
  441.     created menus.
  442.  
  443.     To  make  the  menus  visible  to  your  program  you  must give every
  444.     selectable  menu an ID. The ID must be placed in the nm_UserData field
  445.     of the corresponding NewMenu structure.
  446.  
  447.     Example:
  448.  
  449.     #define ID_ABOUT    1
  450.     #define ID_QUIT         2
  451.  
  452.     struct NewMenu Menus {
  453.         { NM_TITLE,  "Project",   NULL, 0, 0, NULL },
  454.         { NM_ITEM,   "About...",  "?",  0, 0, (APTR)ID_ABOUT },
  455.         { NM_ITEM,   NM_BARLABEL, NULL, 0, 0, NULL },
  456.         { NM_ITEM,   "Quit",      "Q",  0, 0, (APTR)ID_QUIT },
  457.         { NM_END,    NULL,      NULL, 0, 0, NULL }
  458.     }
  459.  
  460.     The  WM_HANDLEIDCMP  method  will  return ID_ABOUT when the "About..."
  461.     item is selected and ID_QUIT when the "Quit" item is selected.
  462.  
  463.     Default is NULL. Applicability is (IG).
  464.  
  465.     NOTE: Since V38.6 of the library the windowclass will  make  a private
  466.           copy of the passed NewMenu array.  The  strings of the items are
  467.           NOT copied and must remain valid.
  468.  
  469.     NAME
  470.     WINDOW_MasterGroup -- ( Object * )
  471.  
  472.     FUNCTION
  473.     To  set  the master group containing all objects for the window.  This
  474.     attribute   data   _must_  point  to a valid groupclass object or else
  475.     the  window  object  creation     will     fail.     It's   currently  not
  476.     possible   to    create     a  windowclass  object without a group object
  477.     attached  to it. The data expected here is a pointer to the groupclass
  478.     object    containing  all other gadget objects.
  479.  
  480.     Example:
  481.  
  482.     Object            *WO_Window;
  483.  
  484.     WO_Window = WindowObject,
  485.         WINDOW_Title,        "Whatever",
  486.         ...
  487.         WINDOW_MasterGroup,
  488.             HGroupObject, HOffset( 4 ), VOffset( 4 ),
  489.                 StartMember,
  490.                     Button( "Quit", 0 ),
  491.                 EndMember,
  492.             EndObject,
  493.     EndObject;
  494.  
  495.     Default is NULL. Applicability is (I).
  496.  
  497.     NAME
  498.     WINDOW_Screen -- ( struct Screen * )
  499.  
  500.     FUNCTION
  501.     To set the custom screen on which the window should open.  If you want
  502.     your  window  to  open on a custom screen you can pass a pointer to it
  503.     here.  Please  note  that you  can use OM_SET to change this attribute
  504.     only when the window is not open.
  505.  
  506.     NEW FOR V39
  507.         Before    this  attribute  made  the mistake of using the screen
  508.         with the WA_PubScreen attribute.  Now  it  makes  use  of  the
  509.         WA_CustomScreen attribute.
  510.  
  511.     Default is NULL. Applicability is (IS).
  512.  
  513.     SEE ALSO
  514.     WINDOW_PubScreen
  515.  
  516.     NAME
  517.     WINDOW_PubScreenName -- ( STRPTR )
  518.  
  519.     FUNCTION
  520.     To set the name of the public screen on which the window should  open.
  521.     Please note that you can use  OM_SET  to change  this  attribute  only
  522.     when the window is not open.
  523.  
  524.     Default is NULL (default public screen). Applicability is (IS).
  525.  
  526.     SEE ALSO
  527.     WINDOW_Screen
  528.  
  529.     NAME
  530.     WINDOW_UserPort -- ( struct MsgPort * )
  531.  
  532.     FUNCTION
  533.     To obtain a pointer to the message port of the window.
  534.  
  535.     Applicability is (G).
  536.  
  537.     NAME
  538.     WINDOW_SigMask -- ( ULONG )
  539.  
  540.     FUNCTION
  541.     To  obtain  the  window signal mask.
  542.  
  543.     Example:
  544.  
  545.     Object           *WO_Win;
  546.     ULONG        mask;
  547.  
  548.     GetAttr( WINDOW_SigMask, WO_Win, &mask );
  549.  
  550.     do {
  551.         Wait( mask );
  552.         ...
  553.     } while ( ... );
  554.  
  555.     Applicability is (G).
  556.  
  557.     SEE ALSO
  558.     WINDOW_AppMask
  559.  
  560.     NAME
  561.     WINDOW_IDCMPHook, WINDOW_VerifyHook -- ( struct Hook * )
  562.  
  563.     FUNCTION
  564.     To  tie  yourself  into  the IDCMP handling of the window.  With these
  565.     attributes  you  can  set a hook which is called uppon    events set  by
  566.     the  WINDOW_IDCMPHookBits and/or WINDOW_VerifyHookBits attributes. The
  567.     hooks are called as follows:
  568.  
  569.     void hookRoutine( hook, object, imsg )
  570.               A0    A2    A1
  571.  
  572.     struct Hook        *hook;
  573.     Object            *object;
  574.     struct IntuiMessage    *imsg;
  575.  
  576.     The  pointer  to  the  IntuiMessage  structure    is read-only. Also the
  577.     message  is  passed to you before it is reply'd so you should not take
  578.     to long before returning.
  579.  
  580.     The  IDCMPHook    is  called  after  the window object has done it's own
  581.     processing on the message. The VerifyHook is called directly while the
  582.     window object does not need to process any verification messages.
  583.  
  584.     Default is NULL. Applicability is (I).
  585.  
  586.     SEE ALSO
  587.     WINDOW_IDCMP, WINDOW_IDCMPHookBits, WINDOW_VerifyHookBits
  588.  
  589.     NAME
  590.     WINDOW_IDCMPHookBits, WINDOW_VerifyHookBits -- ( ULONG )
  591.  
  592.     FUNCTION
  593.     To  set  the  bits  that  will cause the IDCMPHook or VerifyHook to be
  594.     called.  The bits you pass here are the standard system IDCMP_xxx flag
  595.     bits  found in <intuition/intuition.h>. Please note that some of these
  596.     bits  require  you  to set them first using the WINDOW_IDCMP attribute
  597.     described above.
  598.  
  599.     Example:
  600.  
  601.     struct Hook        *idcmp_hook;
  602.     Object            *wd_obj;
  603.  
  604.     wd_obj = WindowObject,
  605.         WINDOW_IDCMP,        IDCMP_INTUITICKS,
  606.         WINDOW_IDCMPHook,    idcmp_hook,
  607.         WINDOW_IDCMPHookBits,    IDCMP_INTUITICKS,
  608.         ...
  609.     EndObject;
  610.  
  611.     This   will   cause   the   WINDOW_IDCMPHook  to  be  called  at  each
  612.     IDCMP_INTUITICKS event.
  613.  
  614.     Please note that the window class does not filter  out    any non-verify
  615.     bits  from  the WINDOW_VerifyHookBits you pass. This means that if you
  616.     set  IDCMP_GADGETUP  in  the  verification bits you will block out the
  617.     window    object    event  handler    from  receiving  gadget  messages. The
  618.     verification bits set should be restricted to the following bits:
  619.  
  620.     IDCMP_REQVERIFY
  621.     IDCMP_MENUVERIFY
  622.  
  623.     Defaults are 0. Applicability is (I).
  624.  
  625.     SEE ALSO
  626.     WINDOW_IDCMP, WINDOW_IDCMPHook, WINDOW_VerifyHook
  627.  
  628.     NAME
  629.     WINDOW_Font -- ( struct TextAttr * )
  630.  
  631.     FUNCTION
  632.     To  set the font to be used by the gadget objects. By default the font
  633.     of  the  screen the window is opened on is used. With this tag you can
  634.     select your own font.  Note that the font is opened with OpenFont() so
  635.     please make sure it is present in memory.
  636.  
  637.     Default is NULL. Applicability is (I).
  638.  
  639.     SEE ALSO
  640.     WINDOW_FallBackFont
  641.  
  642.     NAME
  643.     WINDOW_FallBackFont -- ( struct TextAttr * )
  644.  
  645.     FUNCTION
  646.     To  set the font to try whenever a window fails to open because it has
  647.     grown  to big for the screen. By default the fallback font is topaz 8.
  648.     If  you  pass a TextAttr here the window object will first try to fall
  649.     back  to  the supplied font and, if that also fails, it will try topaz
  650.     8. When topaz 8 fails the window will not open.  Note that the font is
  651.     opened with OpenFont() so please make sure it is present in memory.
  652.  
  653.     Default is NULL. Applicability is (I).
  654.  
  655.     SEE ALSO
  656.     WINDOW_Font
  657.  
  658.     NAME
  659.     WINDOW_HelpFile -- ( STRPTR )
  660.  
  661.     FUNCTION
  662.     Set the name of the file to be displayed when a  help-request  for the
  663.     object arives. Please note that the full path-name must be given.
  664.  
  665.     Default is NULL. Applicability is (IS).
  666.  
  667.     SEE ALSO
  668.     WINDOW_HelpNode, WINDOW_HelpLine
  669.  
  670.     NAME
  671.     WINDOW_HelpNode -- ( STRPTR )
  672.  
  673.     FUNCTION
  674.     Set the name of the node which is diplayed in the help window.
  675.  
  676.     Default is NULL. Applicability is (IS).
  677.  
  678.     SEE ALSO
  679.     WINDOW_HelpFile, WINDOW_HelpLine
  680.  
  681.     NAME
  682.     WINDOW_HelpLine - ( ULONG )
  683.  
  684.     FUNCTION
  685.     Set the line number  from  which the  file is  displayed.  This may be
  686.     useful if the help-file is not an AmigaGuide file.
  687.  
  688.     Default is 0. Applicability is (IS).
  689.  
  690.     SEE ALSO
  691.     WINDOW_HelpFile, WINDOW_HelpNode
  692.  
  693.     NAME
  694.     WINDOW_AppWindow -- ( BOOL )
  695.  
  696.     FUNCTION
  697.     To make the window an AppWindow.
  698.  
  699.     Default is FALSE. Applicability is (I).
  700.  
  701.     SEE ALSO
  702.     WINDOW_AppMask
  703.  
  704.     NAME
  705.     WINDOW_AppMask -- ( ULONG )
  706.  
  707.     FUNCTION
  708.     To  obtain  the app-window signal mask.
  709.  
  710.     Example:
  711.  
  712.     Object           *WO_Win;
  713.     ULONG        mask;
  714.  
  715.     GetAttr( WINDOW_AppMask, WO_Win, &mask );
  716.  
  717.     do {
  718.         Wait( mask );
  719.         ...
  720.     } while ( ... );
  721.  
  722.     Applicability is (G).
  723.  
  724.     SEE ALSO
  725.     WINDOW_SigMask
  726.  
  727.     NAME
  728.     WINDOW_UniqueID -- ( ULONG )
  729.  
  730.     FUNCTION
  731.     To provide the window with an ID. The ID must be a 32bit integer which
  732.     is  used  to  store  information on the window it's position and size.
  733.     This  allows  you to close and dispose of the window object, re-create
  734.     it  with the same ID, and the position and size of the window the last
  735.     time it was open is still the same.
  736.  
  737.     This tag  tracks  the  complete window bounds but if you re-create and
  738.     open your window with the WINDOW_PosRelBox tag specified only the size
  739.     of the    window is re-stored. The size will remain the same as the last
  740.     time the  window  was  open  but  the position will be adjusted to the
  741.     bounds specified with the WINDOW_PosRelBox tag.
  742.  
  743.     The ID must be non-NULL.
  744.  
  745.     Default is 0 (no storage is done). Applicability is (I).
  746.  
  747.     SEE ALSO
  748.     WINDOW_PosRelBox
  749.  
  750.     NAME
  751.     WINDOW_Window -- ( struct Window * )
  752.  
  753.     FUNCTION
  754.     To get a pointer to the window structure.  The pointer you get will be
  755.     NULL if the window is not opened.
  756.  
  757.     Applicability is (G).
  758.  
  759.     NAME
  760.     WINDOW_Bounds -- ( struct IBox * )
  761.  
  762.     FUNCTION
  763.     To  enable  you  to pick the position and the size of the window. This
  764.     attribute expects a pointer to a struct IBox in which the position and
  765.     size are stored. The windowclass will check the values and adjust them
  766.     if necessary. I.E. You cannot specify a size smaller than  the minimum
  767.     possible size.    Query this attribute with  OM_GET to find  out exactly
  768.     where the window is located and what it's size is.
  769.  
  770.     Querying this attribute with OM_GET is only  possible when  the window
  771.     is open. To get this attribute with OM_GET you specify    a pointer to a
  772.     struct IBox in the method.   The  class  will  write the bounds in the
  773.     struct IBox.
  774.  
  775.     Please    note  that  this   attribute   overides  the  WINDOW_Position,
  776.     WINDOW_ScaleWidth, WINDOW_ScaleHeight and WINDOW_PosRelBox attributes.
  777.  
  778.     Default is NULL. Applicability is (ISG).
  779.  
  780.     SEE ALSO
  781.     WINDOW_Position, WINDOW_ScaleWidth, WINDOW_ScaleHeight,
  782.     WINDOW_PosRelBox
  783.  
  784.     NAME
  785.     WINDOW_HelpText -- ( STRPTR)
  786.  
  787.     FUNCTION
  788.     To setup  a  text  which  will be displayed if the help-key is pressed
  789.     while the  mouse  pointer  is located above the window. This attribute
  790.     should be  used  to  attach small on-line help to the window. The text
  791.     you specify will be shown in a small BGUI_RequestA() type of requester
  792.     so you    must  make  sure  that    everything  fit's  nicely on a 600x200
  793.     screen.
  794.  
  795.     The specified text may contain any of the infoclass command sequences.
  796.  
  797.     This   attribute  overides  the  WINDOW_HelpFile,  WINDOW_HelpNode and
  798.     WINDOW_HelpLine attributes.
  799.  
  800.     Default is NULL. Applicability (IS).
  801.  
  802.     SEE ALSO
  803.     WINDOW_HelpFile, WINDOW_HelpNode, WINDOW_HelpLine,
  804.     infoclass/INFO_TextFormat, bgui.library/BGUI_RequestA()
  805.  
  806.     NAME
  807.     WINDOW_NoBufferRP -- ( BOOL )
  808.  
  809.     FUNCTION
  810.     When this attribute is    set to    TRUE the  windowclass  will  tell  the
  811.     layout engine not to  setup a  buffer  RastPort  which    means that all
  812.     rendering occures  on-screen.    This may be handy when you use objects
  813.     which  take  some  time  to  render  like the colorwheel.gadget on 256
  814.     colour screens.
  815.  
  816.     Default is FALSE. Applicability is (I).
  817.  
  818.     NAME
  819.     WINDOW_AutoAspect -- ( BOOL )
  820.  
  821.     FUNCTION
  822.     When this attribute is set the    windowclass  will  automatically  make
  823.     aspect ratio dependant decisions  about the  resulting GUI.  Currently
  824.     the only thing it does is selecting the frame  thickness.  Other stuff
  825.     like spacing and offsets might be added in the future.
  826.  
  827.     Default is FALSE. Applicability is (I).
  828.  
  829.     NAME
  830.     WINDOW_PubScreen -- ( struct Screen * ) ** V39 **
  831.  
  832.     FUNCTION
  833.     To set the public screen on which the window should open.  If you want
  834.     your  window  to  open on a public screen you can pass a pointer to it
  835.     here.  Please  note  that you  can use OM_SET to change this attribute
  836.     only when the window is not open.
  837.  
  838.     Default is NULL. Applicability is (IS).
  839.  
  840.     SEE ALSO
  841.     WINDOW_Screen, WINDOW_PubScreenName
  842.  
  843.     NAME
  844.     WINDOW_CloseOnEsc -- ( BOOL ) ** V39 **
  845.  
  846.     FUNCTION
  847.     When set to TRUE the application will  get a  WMHI_CLOSEWINDOW    result
  848.     from the WM_HANDLEIDCMP method when the user presses the ESC key.
  849.  
  850.     Default is FALSE. Applicability is (IS).
  851.  
  852.     NAME
  853.     WINDOW_Borderless -- ( BOOL ) ** V39 **
  854.  
  855.     FUNCTION
  856.     To create a window without any intuition broders. When this tag is set
  857.     to TRUE all system gadgets like the closegadget, depth gadget etc. are
  858.     cleared. Also the title of the window, if given, is ignored.
  859.  
  860.     It is advisable  to  supply  your master group with some sort of frame
  861.     when you use this  attribute  because  otherwise  there is  no visible
  862.     delineation (nice word stolen from the RKM ;)) from  the  rest    of the
  863.     display.
  864.  
  865.     Default = FALSE. Applicability is (I).
  866.  
  867.     NAME
  868.     WINDOW_Backdrop -- ( BOOL ) ** V39 **
  869.  
  870.     FUNCTION
  871.     To  make the window fall behind all otherwindows. When this tag is set
  872.     to TRUE the window will always be located behind the other  windows on
  873.     the   screen.     This    attribute   also   automatically   set's   the
  874.     WINDOW_Borderless tag to TRUE and it will resize the display to  cover
  875.     the entire display.
  876.  
  877.     Default is FALSE. Applicability is (I).
  878.  
  879.     SEE ALSO
  880.     WINDOW_Borderless, WINDOW_ShowTitle
  881.  
  882.     NAME
  883.     WINDOW_ShowTitle -- ( BOOL ) ** V39 **
  884.  
  885.     FUNCTION
  886.     When  this  tag  is  set to TRUE the screen title will be visible when
  887.     the  WINDOW_Backdrop  tag was  set to TRUE.  Otherwise the window will
  888.     overlap the screen title.
  889.  
  890.     Default is FALSE. Applicability is (I).
  891.  
  892.    SEE ALSO
  893.     WINDOW_Backdrop
  894.  
  895.    NAME
  896.     WINDOW_ActNext, WINDOW_ActPrev -- ( Object * ) ** V39 **
  897.  
  898.    FUNCTION
  899.     These attributes are only useful when you are  writing    custom    gadget
  900.     classes fo BGUI. You should use these attributes to activate  the BGUI
  901.     tab cycling when necessary.  The  data    you  specify for this tag is a
  902.     pointer to the object in question.
  903.  
  904.     When  you  offer  tab-cycling  in  your  gadgetclass  and the user has
  905.     pressed the (shift)-tab key(s)    you  should  send  out    a notification
  906.     message containing  at    least  the  GA_ID  attribute  and one of these
  907.     attributes. When the windowclass event handler get's this attribute it
  908.     will activate the next/previous gadget and notify the application.
  909.  
  910.     NAME
  911.     WINDOW_NoVerify -- ( BOOL ) ** V39 **
  912.  
  913.     FUNCTION
  914.     The windowclass depends on the IDCMP_SIZEVERIFY flag  to  handle  user
  915.     re-sizing of the window.  As you know the xxxVERIFY  flags  are pretty
  916.     dangourous and should be responded to as fast as possible.  If you are
  917.     unable to call the WM_HANDLEIDCMP method fast or  you need  to do some
  918.     DOS related things just set this tag to TRUE on the window object.
  919.  
  920.     This will turn off the IDCMP_SIZEVERIFY dependance  of the  window and
  921.     allow you to do your thing.
  922.  
  923.     After  you  are  finished  with  the  DOS stuff and/or you are able to
  924.     respond to signals again set it back to FALSE again.
  925.  
  926.     Applicability is (I).
  927.